home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)tn.d64 / address book 2.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  19KB  |  513 lines

  1. 5 X=1
  2. 10 IFREPEAT=.THENRE=1:ONXGOTO5000:GOTO4900
  3. 15 GOSUB5400
  4. 20 GOSUB265:POKE788,52:PRINTCHR$(142)CHR$(8)
  5. 25 OPEN8,8,8,"0:[160]FILES":GOSUB200:GOTO4000
  6. 50 IFPEEK(52)-PEEK(50)<3GOTO3200
  7. 60 RETURN
  8. 100 PRINT"[147]";
  9. 105 PRINT:PRINTVT$(4)"[159]LAST NAME, FIRST:[151]":PRINTC2$
  10. 110 PRINT"   ,[151][157]"FI$(1);:IFFI$(2)<>""THENPRINT", "FI$(2)" ";
  11. 115 PRINT:X=LEN(FI$(1))+LEN(FI$(2))+1:IFX>MLTHENPRINTVTAB$(6);:GOSUB180
  12. 120 PRINT"[159]STREET:[151]":PRINTC1$:IFFI$(3)<>""THENPRINT"   "FI$(3)" ";
  13. 125 PRINT:PRINT"[159]CITY, STATE, ZIP:[151]":PRINTC2$
  14. 130 PRINT"   "FI$(4);:IFFI$(4)="?"THENPRINT:GOTO145
  15. 135 IFFI$(5)<>""THENPRINT", "FI$(5);:IFFI$(6)<>""THENPRINT", "FI$(6)" ";
  16. 140 PRINT:X=LEN(FI$(4))+LEN(FI$(5))+LEN(FI$(6))+4:IFX>MLTHENPRINTVT$(11);:GOSUB180
  17. 145 PRINT"[159]PHONE:[151]":PRINTC1$:IFFI$(7)<>""THENPRINT"   "FI$(7)" ";
  18. 150 PRINT:PRINT"[159]MAILING CODES:[151]":PRINTC1$:PRINT"   "FI$(8)" ";
  19. 160 PRINT:PRINT"[159]NOTES:[151]":PRINTC2$:IFFI$(9)<>""THENPRINT"   "FI$(9)" "
  20. 170 RETURN
  21. 180 PRINT",,,?"X-ML"[157] TOO MANY CHARACTERS FOR LABEL[151]":RETURN
  22. 200 INPUT#15,A,B$,C,D
  23. 210 IF(A<20)OR(A=50)OR(A=62)THENRETURN
  24. 220 IFA=70THENIFX<>70THENX=A:CLOSE8:OPEN8,8,8,"0:[160]FILES":GOTO200
  25. 230 GOTO3900
  26. 250 PRINTVTAB$(19)"      PRESS SPACE TO SEARCH FURTHER    "
  27. 255 PRINT"[159]   F7[146] CORRECT OR ERASE RECORD          "
  28. 260 PRINT"[159]   F2[146] PRINT RECORD   F8[146] PRINT A LABEL "
  29. 265 PRINTVTAB$(22)"[159]   F1[146] OLD RECORD        F3[146] NEW RECORD"
  30. 270 PRINT"   F6[146] PRINT MAILING LIST     F5[146] NOTES "
  31. 275 PRINT"   F4[146] SORT/SAVE NEW ENTRIES   [182]_[146][181]EXIT[151]";
  32. 280 RETURN
  33. 284 IFHT<>1THENRETURN
  34. 285 PRINTVTAB$(19)"[159]      PRESS SPACE TO SEARCH FURTHER    ":RETURN
  35. 290 PRINTVTAB$(20)"   F7[146] CORRECT RECORD         [182]?[146][181]ERASE":RETURN
  36. 295 PRINTVTAB$(21)"       [159][161]H[146][161]HELP WITH COMMAND MENU     ":GOTO265
  37. 350 IFNU>MFTHENPRINT"[147]"VT$(19)"   FILE IS FULL - NO FURTHER ENTRIES [151]":RETURN
  38. 360 NU=NU+1:W=NU:HOLD=NU
  39. 370 A$=RIGHT$(STR$(1000+W),3)
  40. 380 IFLEN(FI$(1))>11THENINDEX$(HO)=FI$(1)+" "+"[139]"+FI$(6)+"[140]"+FI$(8)+A$:GOTO390
  41. 385 INDEX$(HO)=FI$(1)+" "+LEFT$(FI$(2),12-LEN(FI$(1)))+"[139]"+FI$(6)+"[140]"+FI$(8)+A$
  42. 390 IFASC(IN$(HO))=32ORASC(IN$(HO))>90THENIN$(HO)="^"+A$:NF=NF+1:GOTO200
  43. 400 Z=.:GOSUB50:Z=INT(W/256):Y=W-(Z*256)
  44. 410 PRINT#15,"P"CHR$(8)CHR$(Y)CHR$(Z)CHR$(1)
  45. 420 PRINT#8,FI$(1)R$FI$(2)R$FI$(3)R$FI$(4)R$FI$(5)R$FI$(6)R$FI$(7)R$FI$(8)R$FI$(9)
  46. 430 GOSUB200:IFX=70GOTO410
  47. 440 NF=NF+1:RETURN
  48. 450 Z=INT(W/256):Y=W-(Z*256):GOSUB50
  49. 460 PRINT#15,"P"CHR$(8)CHR$(Y)CHR$(Z)CHR$(1)
  50. 470 INPUT#8,FI$(1),FI$(2),FI$(3),FI$(4),FI$(5),FI$(6),FI$(7),FI$(8),FI$(9)
  51. 480 GOSUB200:IFX=70THENX=.:GOTO460
  52. 490 RETURN
  53. 500 GOSUB50:OPEN1,0
  54. 510 PRINT:PRINTVTAB$(5)TAB(3);
  55. 520 INPUT#1,FIELD$(1),FI$(2):IFPEEK(214)<>4GOTO510
  56. 525 IFFI$(1)=""THENCLOSE1:FORX=1TO9:FI$(X)="":NEXT:GOSUB100:HT=1:RETURN
  57. 530 IFFI$(2)=""THENGOSUB950:IFFI$(2)=""THENPRINTVTAB$(5)"?? "FI$(1)", ?":GOTO510
  58. 540 PRINT:PRINTVTAB$(8)TAB(3);
  59. 550 INPUT#1,FI$(3):IFPEEK(214)<>7GOTO540
  60. 560 IFFI$(3)="? "ORFI$(3)="?"GOTO625
  61. 565 IFLEN(FI$(3))>MLTHENFI$(3)=LEFT$(FI$(3),ML):GOSUB100:GOTO540
  62. 570 PRINT:PRINTVTAB$(10)TAB(3);
  63. 580 INPUT#1,FI$(4),FI$(5),FI$(6):IFPEEK(214)<>9GOTO570
  64. 585 IFFI$(4)="?"ORFI$(4)=""GOTO625
  65. 590 IFFI$(6)<>""THENA=6:GOSUB845
  66. 595 IFFI$(5)=""THENIFFI$(6)=""THENA=4:GOSUB845:GOSUB865:GOSUB805:GOTO610
  67. 600 IFFI$(6)=""THENA=5:GOSUB845:GOSUB865:IFFI$(5)<>""THENGOSUB830
  68. 605 IFFI$(5)=""THENGOSUB800
  69. 610 IFFI$(5)=""ORFI$(6)=""THENPRINTVTAB$(10)"?":GOTO570
  70. 620 IFZ<>ATHENIFFI$(6)<>"? "THENIFLEN(FI$(6))<5THENPRINTVT$(10)"??":Z=A:GOTO570
  71. 625 PRINT:PRINTVTAB$(13)TAB(3);
  72. 630 INPUT#1,FI$(7):IFPEEK(214)<>12GOTO625
  73. 645 PRINT:PRINTVTAB$(15)TAB(3);
  74. 650 INPUT#1,FI$(8):IFPEEK(214)<>14GOTO645
  75. 655 PRINT:PRINTVTAB$(17)TAB(3);
  76. 660 INPUT#1,FI$(9):IFPEEK(214)<>16THENIFPEEK(214)<>17THENPRINT:PRINTVT$(19)CL$:GOTO655
  77. 665 FORA=1TO9:GOSUB845:IFFI$(A)=""THENFI$(A)="?"
  78. 670 NEXT
  79. 675 Y=0:FORX=1TO9:Y=Y+LEN(FI$(X)):NEXT:Z=LEN(FI$(9))
  80. 680 IFZ<(Y+9-LG)THENPRINTVT$(20)"             FILE TOO LONG [151][146]       ":GOTO510
  81. 685 IFLG<(Y+9)THENFI$(9)=LEFT$(FI$(9),Z+LG-Y-9):GOSUB100:GOTO655
  82. 690 GOSUB105
  83. 695 PRINT:CLOSE1
  84. 700 GOSUB290:GOSUB260:IFHT=1THENGOSUB285
  85. 710 GETC$:IFC$<>""GOTO710
  86. 720 GETC$:IFC$=""GOTO720
  87. 730 IFC$="[137]"THENGOSUB2250:GOSUB2200:GOSUB290:GOSUB260:GOSUB284:GOTO710
  88. 740 IFC$="[140]"THENGOSUB2250:OPEN4,4:GOSUB2000:CLOSE4:GOSUB290:GOSUB260:GOSUB284:GOTO710
  89. 750 IFC$="[136]"THENGOSUB100:GOTO500
  90. 760 IFC$="?"THENFORX=1TO9:FI$(X)="":NEXT:RETURN
  91. 770 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO720
  92. 780 IFC$<>" "THENIFC$<>"_"THENIFASC(C$)<133ORASC(C$)>140GOTO720
  93. 790 RETURN
  94. 800 A=4:GOSUB845
  95. 805 IFFI$(4)=""THENRETURN
  96. 810 Y=LEN(FI$(4)):FORX=YTO1STEP-1:FT$=MID$(FI$(4),X,1)
  97. 815 IFFT$=" "THENFI$(5)=RIGHT$(FI$(4),Y-X):FI$(4)=LEFT$(FI$(4),X-1):GOTO830
  98. 820 NEXT:PRINT:PRINTVTAB$(10)TAB(3)FI$(4)", ":RETURN
  99. 830 A=4:GOSUB845
  100. 840 PRINT:PRINTVT$(10)C1$:PRINTVTAB$(10)TAB(3)FI$(4)", "FI$(5)", "FI$(6):RETURN
  101. 845 FQ$=FI$(A)
  102. 850 Y=LEN(FQ$):IFY=.THENRETURN
  103. 855 FORX=YTO1STEP-1:FT$=MID$(FQ$,X,1):IFFT$=" "THENNEXT
  104. 860 FQ$=LEFT$(FQ$,X):FI$(A)=FQ$:RETURN
  105. 865 IFX=.THENRETURN
  106. 870 FORY=XTO1STEP-1:FT$=MID$(FQ$,Y,1):IFASC(FT$)<48 OR ASC(FT$)>57GOTO880
  107. 875 NEXTY
  108. 880 FI$(6)=MID$(FQ$,Y+1)
  109. 885 IFFT$=" "THENY=Y-1
  110. 890 FQ$=LEFT$(FQ$,Y):GOSUB850
  111. 895 FI$(A)=FQ$:RETURN
  112. 950 Y=LEN(FI$(1)):FORX=YTO1STEP-1:FT$=MID$(FI$(1),X,1):IFFT$=" "THENNEXT
  113. 955 FI$(1)=LEFT$(FI$(1),X)
  114. 960 Y=LEN(FI$(1)):FORX=YTO1STEP-1:FT$=MID$(FI$(1),X,1)
  115. 970 IFFT$=" "THENFI$(2)=LEFT$(FI$(1),X-1):FI$(1)=RIGHT$(FI$(1),Y-X):GOTO990
  116. 980 NEXT
  117. 990 PRINT:PRINTVTAB$(5)TAB(3)FI$(1)", "FI$(2):RETURN
  118. 1000 FORZ=0TO9:FI$(Z)="":NEXT
  119. 1005 PRINT"[147]":PRINTTAB(11)"ENTER NAME SOUGHT":GOSUB105
  120. 1010 PRINTVTAB$(19)"   *[146] DISPLAY ENTIRE LIST"
  121. 1015 PRINT"     ADD A LETTER TO BEGIN AFTER A
  122. 1020 [153]:[153]"   ^WAIT VIEW ERASED RECORDS"
  123. 1025 [153]"     TO RETRIEVE - PRESS F7WAITPOKE
  124. 1040 GOSUB50:OPEN1,0
  125. 1045 PRINT:PRINTVTAB$(5)TAB(3);
  126. 1050 INPUT#1,FIELD$(1),FI$(2):IFPEEK(214)<>4THENIFPEEK(214)<>5GOTO1045
  127. 1055 CLOSE1
  128. 1060 IFFI$(1)=""THENC$="":FORX=1TO9:FI$(X)="":GOSUB100:GOTO295
  129. 1070 PRINT""CL$:IFFI$(2)=""THENGOSUB950:GOTO1120
  130. 1080 Y=LEN(FI$(2)):FORX=YTO1STEP-1:FT$=MID$(FI$(2),X,1):IFFT$=" "THENNEXT
  131. 1100 FI$(2)=LEFT$(FI$(2),X)
  132. 1110 IFFI$(2)="?"ORFI$(2)="*"THENFI$(2)=""
  133. 1120 F1$=FI$(1):F2$=FI$(2):IFFI$(2)<>""THENFI$(2)=" "+FI$(2)
  134. 1125 IFMID$(FI$(1),2,1)="*"THENFI$(1)="*"+LEFT$(FI$(1),1)
  135. 1130 SEEK$=LEFT$((FI$(1)+FI$(2)),13):IFLEN(FI$(1))>12THENSE$=FI$(1)
  136. 1135 LN=LEN(SE$)
  137. 1140 IFLEFT$(SE$,1)="*"THENFI$(0)="*":SE$=MID$(SE$,2,1):LN=1:IFSE$=""THENSE$="A"
  138. 1150 W=.:FOR HOLD=1TONU
  139. 1160 IFLEN(IN$(HO))=4THENIFSE$<>"^"THENNEXT:GOTO1300
  140. 1170 IFFI$(0)="*"THENIFASC(SE$)<ASC(IN$(HO))THENSE$=LEFT$(IN$(HO),1)
  141. 1180 IFSE$<>LEFT$(IN$(HO),LN)THENNEXT:GOTO1300
  142. 1190 W=VAL(RIGHT$(IN$(HO),3)):GOSUB450:GOSUB105:GOSUB250
  143. 1200 GETC$:IFC$<>""GOTO1200
  144. 1210 GETC$:IFC$=""GOTO1210
  145. 1220 IFC$="[136]"THENHT=1:PRINT"[147]":GOSUB100:GOSUB500:GOSUB100:GOSUB370:GOSUB250:HT=.
  146. 1230 IFC$=" "THENNEXT:GOTO1300
  147. 1240 IFC$="[137]"THENGOSUB2250:GOSUB2200:GOSUB250:GOTO1200
  148. 1250 IFC$="[140]"THENGOSUB2250:OPEN4,4:GOSUB2000:CLOSE4:GOSUB250:GOTO1200
  149. 1260 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO1210
  150. 1270 IFASC(C$)<133ORASC(C$)>140THENIFC$<>"_"GOTO1210
  151. 1280 HO=NU:NEXT:GOTO1300
  152. 1300 IFW=.GOTO1350
  153. 1310 FI$(1)=F1$:FI$(2)=F2$:FORX=3TO9:FI$(X)="":NEXT:GOSUB105
  154. 1320 PRINTVTAB$(19)CL$
  155. 1330 PRINT"            NO FURTHER MATCH            ";
  156. 1340 GOSUB295:RETURN
  157. 1350 PRINT""CL$:PRINTVTAB$(19)CL$
  158. 1360 PRINTVTAB$(20)"             NO SUCH RECORD          ":GOSUB295
  159. 1370 C$="":RETURN
  160. 2000 IFFI$(4)="?"THENRETURN
  161. 2010 IFASC(FI$(1))<91THENPRINT#4,""SPC(LM);:IFFI$(2)<>"?"THENPRINT#4,FI$(2)" ";
  162. 2020 IFASC(FI$(1))<91THENPRINT#4,FI$(1)
  163. 2030 PRINT#4,""SPC(LM)FI$(3)
  164. 2040 PRINT#4,""SPC(LM)FI$(4)", "FI$(5)"  "FI$(6)
  165. 2050 PRINT#4,R$,R$,R$;
  166. 2060 IFASC(FI$(1))>90THENPRINT#4,R$;
  167. 2070 RETURN
  168. 2100 IFFI$(4)="?"THENRETURN
  169. 2105 A$="":IFLC=1THENA$=RIGHT$(CL$,(DS-LEN(LA$(1))))
  170. 2110 IFFI$(2)<>"?"THENLA$(1)=LA$(1)+A$+FI$(2)+" "+FI$(1)
  171. 2115 IFFI$(2)="?"THENLA$(1)=LA$(1)+A$+FI$(1)
  172. 2120 A$="":IFLC=1THENA$=RIGHT$(CL$,(DS-LEN(LA$(2))))
  173. 2125 LA$(2)=LA$(2)+A$+FI$(3)
  174. 2130 A$="":IFLC=1THENA$=RIGHT$(CL$,(DS-LEN(LA$(3))))
  175. 2135 LA$(3)=LA$(3)+A$+FI$(4)+", "+FI$(5)+" "+FI$(6)
  176. 2140 LC=LC+1:IFLC<LATHENRETURN
  177. 2150 PRINT#4,""SPC(LM)LA$(1)
  178. 2160 PRINT#4,""SPC(LM)LA$(2)
  179. 2170 PRINT#4,""SPC(LM)LA$(3)
  180. 2175 PRINT#4,R$,R$,R$;
  181. 2180 LA$(1)="":LA$(2)="":LA$(3)="":LC=0
  182. 2190 RETURN
  183. 2200 OPEN4,4
  184. 2205 PRINT#4,""SPC(LM)FI$(1)", "FI$(2)SPC(ML-LEN(FI$(1))-LEN(FI$(2)))"PHONE: "FI$(7)
  185. 2210 PRINT#4,""SPC(LM);:IFFI$(4)="?"THENIFFI$(8)="?"GOTO2230
  186. 2215 IFFI$(4)<>"?"THENPRINT#4,FI$(3)", "FI$(4)", "FI$(5)" "FI$(6);
  187. 2220 IFFI$(8)<>"?"THENPRINT#4,"    ("FI$(8)")";
  188. 2225 PRINT#4,R$SPC(LM);
  189. 2230 IFFI$(9)<>"?"THENPRINT#4,"NOTE: "FI$(9)
  190. 2240 PRINT#4,R$;:IFC$="[137]"THENCLOSE4
  191. 2245 RETURN
  192. 2250 OPEN1,0:PRINTVTAB$(19)CL$
  193. 2255 PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$:LM$=MID$(STR$(LM),2)
  194. 2260 PRINTVTAB$(20)"LEFT MARGIN: (0 TO"MM" SPACES)[151]":PRINTLM$
  195. 2265 PRINTVTAB$(20)
  196. 2270 INPUT#1,LM$:IFPEEK(214)<>20THENPRINTVT$(20);:GOTO2255
  197. 2275 CLOSE1
  198. 2280 IFLM$<>""THENIFASC(LM$)<58THENIFASC(LM$)>47THENLM=VAL(LM$):IFLM>MMTHENLM=MM
  199. 2285 LM$=MID$(STR$(LM),2):PRINTVTAB$(21)CL$:PRINT"[145]"LM$"[159]"
  200. 2290 RETURN
  201. 2300 PRINT"[147]      * MAIL LIST PRINT OPTIONS *      "
  202. 2310 PRINT:PRINT"PRINT ENTIRE LIST: (Y OR N)":PRINT"Y"
  203. 2320 PRINT"PRINT LIST BEGINNING WITH: (LETTER)":PRINT"A"
  204. 2330 PRINT"PRINT ONLY NAMES WITH THESE CODES:"
  205. 2340 PRINT:PRINT"DO NOT PRINT NAMES WITH THESE CODES:"
  206. 2350 PRINT:PRINT"PRINT ONLY THIS ZIP CODE:"
  207. 2360 PRINT"(ALL OR ONLY FIRST PART)"
  208. 2370 PRINT:PRINT"DO NOT PRINT THIS ZIP CODE:"
  209. 2380 PRINT"(ALL OR ONLY FIRST PART)"
  210. 2390 PRINT:PRINT"LABEL FORMAT: (1 OR 2 ACROSS) FILE: (0)":PRINT"[151]1"
  211. 2400 GOSUB50:OPEN1,0
  212. 2405 PRINTVTAB$(4)"[151]"
  213. 2407 INPUT#1,C$:IFPEEK(214)<>4GOTO2405
  214. 2410 P1=.:C$=LEFT$(C$,1):IFC$="Y"THENP1=1:PRINTVTAB$(5)C$
  215. 2415 IFP1THENP2$="A":GOTO2470
  216. 2417 IFC$<>"Y"THENIFC$<>"N"THENC$="":CLOSE1:GOSUB3600:GOTO2650
  217. 2420 PRINTVTAB$(6)
  218. 2422 INPUT#1,P2$:IFPEEK(214)<>6GOTO2420
  219. 2425 P2$=LEFT$(P2$,1):IFP2$=""THENP2$="A"
  220. 2427 PRINTVTAB$(7)P2$
  221. 2430 PRINTVTAB$(8)
  222. 2435 INPUT#1,PY$:IFPEEK(214)<>8GOTO2430
  223. 2440 PRINTVTAB$(10)
  224. 2445 INPUT#1,PN$:IFPEEK(214)<>10GOTO2440
  225. 2450 PRINTVTAB$(13)
  226. 2455 INPUT#1,ZY$:IFPEEK(214)<>13GOTO2450
  227. 2460 PRINTVTAB$(16)
  228. 2465 INPUT#1,ZN$:IFPEEK(214)<>16GOTO2460
  229. 2470 PRINTVTAB$(18)
  230. 2471 INPUT#1,LABEL$:IFPEEK(214)<>18GOTO2470
  231. 2472 LA$=LEFT$(LA$,1):IFLA$<>"2"THENIFLA$<>"0"THENLA$="1"
  232. 2473 LABEL=VAL(LA$):LCOUNT=.
  233. 2474 PRINTVTAB$(19)LA$:LA=LA-3*(LA=0)
  234. 2475 GOSUB2255
  235. 2480 PRINTVTAB$(20)"     PRESS F7[146] TO CORRECT ENTRIES    "
  236. 2485 PRINT"    PRESS SPACE TO BEGIN PRINTING":GOSUB265
  237. 2490 GETC$:IFC$=""GOTO2490
  238. 2491 IFC$="[136]"THENPRINTVT$(20)CL$:PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$:GOTO2400
  239. 2492 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO2490
  240. 2493 IFASC(C$)>132ANDASC(C$)<141ORC$="_"THENPRINT"[147]":GOTO2650
  241. 2494 IFC$<>" "GOTO2480
  242. 2495 PRINTVTAB$(20)"  PRESS RUN/STOP KEY TO END PRINT OUT  [151]"
  243. 2497 PRINTCL$:PRINTCL$:PRINTCL$:PRINTCL$
  244. 2500 OPEN4,4:FORHO=1TONUMBER:IFASC(P2$)=<ASC(IN$(HO))GOTO2510
  245. 2505 NEXT:PRINTVTAB$(20)"   NO ENTRIES TO PRINT.":GOSUB265:GOTO2645
  246. 2510 FORHOLD=HOTONU:Z=LEN(IN$(HO))-3
  247. 2520 FORX=1TOZ:IFMID$(IN$(HO),X,1)="[139]"GOTO2524
  248. 2522 NEXT:NEXTHOLD:GOTO2635
  249. 2524 X=X+1:FORY=XTOZ:IFMID$(IN$(HO),Y,1)="[140]"GOTO2528
  250. 2526 NEXT
  251. 2528 FI$(6)=MID$(IN$(HO),X,Y-1):FI$(8)=MID$(IN$(HO),Y+1,Z)
  252. 2535 IFP1GOTO2600
  253. 2540 IFZN$<>""THENIFZN$=LEFT$(FI$(6),LEN(ZN$))GOTO2620
  254. 2545 IFZY$<>LEFT$(FI$(6),LEN(ZY$))GOTO2620
  255. 2550 IFPY$=""GOTO2575
  256. 2555 IFFI$(8)="?"GOTO2620
  257. 2560 FORX=1TOLEN(PY$):FORY=1TOLEN(FI$(8))
  258. 2565 IFMID$(PY$,X,1)=MID$(FI$(8),Y,1)GOTO2575
  259. 2570 NEXT:NEXT:GOTO2620
  260. 2575 IFPN$=""ORFI$(8)="?"GOTO2600
  261. 2580 FORX=1TOLEN(PN$):FORY=1TOLEN(FI$(8))
  262. 2585 IFMID$(PN$,X,1)=MID$(FI$(8),Y,1)GOTO2620
  263. 2590 NEXT:NEXT
  264. 2600 IFPEEK(197)=63THENHO=NU:NEXT:GOTO2645
  265. 2610 W=VAL(RIGHT$(IN$(HO),3)):GOSUB450:ONLAGOSUB2000,2100,2205
  266. 2620 IFPEEK(197)=63THENHO=NU:NEXT:GOTO2645
  267. 2630 NEXTHOLD
  268. 2635 IFLA$(1)<>""THENGOSUB2150
  269. 2640 PRINTVTAB$(20)"   NO FURTHER ENTRIES. "
  270. 2645 C$="":CLOSE4
  271. 2650 GOTO295
  272. 3000 FORZ=1TO9:FI$(Z)="":NEXT
  273. 3010 PRINT"[147]"TAB(11)"ENTER NEW RECORD[151]"
  274. 3020 GOSUB105:GOSUB500:IFHT=1THENHT=.:C$="":GOTO295
  275. 3030 IFFI$(1)=""THENC$="[134]":RETURN
  276. 3040 HO=NU+1:FORX=NUTO1STEP-1
  277. 3050 IFLEN(IN$(X))>4THENHO=X+1:X=.:A$=RIGHT$(IN$(HO),3):W=VAL(A$)
  278. 3060 NEXT
  279. 3070 IFHO<=NUTHENGOSUB380
  280. 3080 IFHO>NUTHENGOSUB350
  281. 3085 IFC$<>" "THENRETURN
  282. 3090 PRINTVTAB$(20)"     PRESS F3[146] TO ENTER ANOTHER NAME[151]    "
  283. 3100 PRINTCL$
  284. 3110 GOTO265
  285. 3200 PRINT" SORRY, DELAY IS TO CLEAR MEMORY SPACE"
  286. 3210 CLOSE8:IFNF=.THENGOTO3250
  287. 3220 SYS49350,NU,IN$(1):OPEN2,8,2,"@0:[160]INDEX,S,W":GOSUB200
  288. 3230 PRINT#2,NUMBER:GOSUB200
  289. 3240 FORX=1TONUMBER:PRINT#2,INDEX$(X):NEXT:GOSUB200:CLOSE2:NF=.:GOSUB200
  290. 3250 FORX=1TONU:IN$(X)="":NEXT:FORX=1TO25:VT$(X)="":NEXT
  291. 3260 IFZTHENFORX=0TO9:FI$(X)="":NEXT:C$=""
  292. 3270 A$="":B$="":C1$="":C2$="":FT$="":FQ$="":CL$="":R$=""
  293. 3280 X=FRE(0)
  294. 3290 GOSUB5350
  295. 3300 OPEN2,8,2,"0:[160]INDEX,S,R":GOSUB200
  296. 3310 INPUT#2,NUMBER
  297. 3320 FORX=1TONUMBER:IF ST THEN CLOSE2:GOTO3340
  298. 3330 INPUT#2,INDEX$(X):NEXT
  299. 3340 CLOSE2:GOSUB200
  300. 3350 OPEN8,8,8,"0:[160]FILES":GOSUB200:PRINT""CL$:RETURN
  301. 3500 PRINT"[147]"VTAB$(8)TAB(2)"SORTING[160]AND SAVING - PLEASE WAIT..."
  302. 3510 IFNF>.THENSYS49350,NU,IN$(1)
  303. 3520 Y=0:FOR X=NUTO1STEP-1:IFLEN(IN$(X))=4THENY=Y+1:NEXT
  304. 3525 IFX>.THENX=.:NEXT
  305. 3530 PRINTVTAB$(12)TAB(10)"THERE ARE"NU-Y"RECORDS"
  306. 3535 CLOSE8:IFNF=.THEN3590
  307. 3540 PRINT:PRINTTAB(9)NF"CHANGED OR ADDED
  308. 3550 NF[178].:[159]2,8,2,"@0:CLOSEINDEX,S,W"
  309. 3560 [141]200:[152]2,NUMBER:[141]200
  310. 3570 [129]X[178]1[164]NUMBER:[152]2,INDEX$(X):[130]:[141]200
  311. 3580 [160]2:[141]200
  312. 3590 [139]NS[167][158]49155:[141]200
  313. 3595 NS[178].:[159]8,8,8,"0:CLOSEFILES":[141]200
  314. 3600 [153]""VTAB$(20)[163]13)"PLEASE PROCEED":[142]
  315. 3900 [139]NU[179][177].[167][139][194](49686)[178]96[167][139][194](788)[178]52[167]C[178][171]1
  316. 3910 [160]8:[158]65511:[139]C[179][177][171]1[167][153][199](9):[151]788,49:[128]
  317. 3920 [153]"LOAD"VTAB$(10)A,"  "B$:[153]
  318. 3930 [153]"    DO YOU HAVE NEW ENTRIES TO SAVE?":[153]
  319. 3940 [153]"  IF SO, CORRECT DISK ERROR THEN PRESS":[153]
  320. 3950 [153][163]15)"SPACE BAR
  321. 3960 GETC$:IFC$=""GOTO3960
  322. 3970 IFC$<>" "THENC=.:GOTO3910
  323. 3980 OPEN15,8,15:GOSUB3500:C=.:GOTO3910
  324. 4000 GETC$
  325. 4010 IFC$=""GOTO4000
  326. 4020 IFC$="[133]"THENGOSUB1000:GOTO4010
  327. 4030 IF C$="[134]"THEN GOSUB3000:GOTO4010
  328. 4040 IFC$="[138]"THENGOSUB3500:GOSUB295:GOTO4000
  329. 4050 IFC$="[139]"THENGOSUB2300:GOTO4010
  330. 4060 IFC$="[135]"THENPRINT"";:SYS49152:NS=1:GOTO4000
  331. 4070 IF C$="_"THENGOSUB3500:GOTO3910
  332. 4080 IFC$="H"THENPRINT"[147]":GOSUB5020:GOSUB5400:GOSUB265:GOTO4000
  333. 4090 GOTO4000
  334. 4900 PRINT"[147]"CHR$(142):POKE53280,3:POKE53281,1
  335. 4905 PRINT" * GEMINI 10X/15X TYPE STYLE CONTROL *
  336. 4910 [153]:[153]"CHOOSE THE TYPE STYLE YOU WISH:
  337. 4915 PRINT:PRINT" 1 STANDARD STYLE, NORMAL DENSITY
  338. 4920 [153]" 2 STANDARD STYLE, EMPHASIZED DENSITY
  339. 4925 PRINT" 3 ITALIC STYLE, NORMAL DENSITY
  340. 4930 [153]" 4 ITALIC STYLE, EMPHASIZED DENSITY
  341. 4935 PRINT:PRINT"ENTER A NUMBER FROM 1 TO 4":PRINT"PRESS RETURN KEY
  342. 4940 [153]:[153]"POKE1CMD";
  343. 4945 A$[178]"A":[159]1,0:[132]1,A$:[160]1
  344. 4950 X[178]1:[139]A$[179][177]""[167][139][198](A$)[177]49[167][139][198](A$)[179]53[167]X[178][197](A$)
  345. 4960 [159]4,4:[152]4,[199](27)"@";:[145]X[137]4990,4970,4980,4970
  346. 4970 [152]4,[199](27)"E";:[139]X[178]2[137]4990
  347. 4980 [152]4,[199](27)[199](52);
  348. 4990 [160]4
  349. 5000 [153]"LOAD"[199](142):[151]53280,3:[151]53281,1:[141]5020:[137]5095
  350. 5020 [153][163]12)"* ADDRESS FILE *
  351. 5025 PRINT"   TO RETRIEVE A RECORD, PRESS F1[146] AND
  352. 5030 [153]"   ENTER ALL OR PART OF A NAME.
  353. 5035 PRINT:PRINT"   IF YOU ENTER PART OF A NAME,
  354. 5040 [153]"   THE PROGRAM WILL FIND ALL MATCHES.
  355. 5045 PRINT:PRINT"   TO ADD A NEW RECORD, PRESS F3[146]
  356. 5050 [153]:[153]"   THE PROGRAM WILL RECOGNIZE MOST
  357. 5055 PRINT"   NAMES IN FIRST NAME LAST NAME ORDER.
  358. 5060 [153]:[153]"   PRESS RETURNWAIT KEY - NOT CRSRWAIT KEY
  359. 5070 PRINT"   FOR EACH LINE ENTERED AND TO MOVE
  360. 5075 [153]"   DOWN FOR CORRECTIONS.
  361. 5080 PRINT:PRINT"   PRESS F5[146] TO VIEW AND WRITE TO NOTE
  362. 5085 [153]"   PAGE SCREEN. THIS SCREEN IS SAVED
  363. 5090 PRINT"   WITH THE ADDRESS FILES.":RETURN
  364. 5095 PRINT:PRINTTAB(11)"PLEASE WAIT...
  365. 5100 [134] VTAB$(25):[141]5350:[134] INDEX$(MF)
  366. 5200 [159]15,8,15,"I"
  367. 5210 [159]2,8,2,"0:CLOSEINDEX,S,R":[141]200
  368. 5220 [139]A[179][177]62[137]5250
  369. 5230 [160]2:NUMBER[178].:[137]10000
  370. 5250 [132]2,NUMBER
  371. 5260 [129]X[178]1[164]NUMBER:[139] ST [167] [160]2:[137]5300
  372. 5270 [132]2,INDEX$(X):[130]
  373. 5280 [160]2
  374. 5300 [147]"CLOSE(ML)/NOTES/SORT",8,1
  375. 5310 [137]15
  376. 5350 VT$(1)[178]"":[129]X[178]2[164]25:VT$(X)[178]VT$(X[171]1)[170]"":[130]
  377. 5360 A$[178]"   ?":B$[178]",,,,,,,,,,,,,,,,,,,,,,,,":C1$[178]A$[170]B$[170]"           POKEON"
  378. 5370 C2$[178]A$[170]B$[170]B$[170]"                           POKEONON"
  379. 5380 CL$[178]"                                       "
  380. 5390 R$[178][199](13):ML[178]34:MM[178]80[171]ML:MF[178]700:LG[178]150:DS[178]36:[142]
  381. 5400 [153]VTAB$(23)[163]7)"PRESS SPACE TO CONTINUE
  382. 5410 GET C$:IF C$<>""GOTO5410
  383. 5420 GET C$:IF C$=""GOTO5420
  384. 5430 PRINT"[147]"TAB(10)"* PRINT FACILITIES *
  385. 5435 [153]:[153]"   'MAILING CODE' MAY BE ANY NUMBER
  386. 5436 PRINT"   OF LETTERS OR NUMBERS TO BE KEYED
  387. 5437 [153]"   INDIVIDUALLY. THEY CONTROL WHICH
  388. 5438 PRINT"   LABELS ARE PRINTED FROM THE FILES.
  389. 5440 [153]:[153]"   PRESS F6WAIT FOR MAILING LIST PRINT OUT.
  390. 5450 PRINT:PRINT"   F8[146] PRINTS A SINGLE NAME AND ADDRESS
  391. 5460 [153]"   LABEL AND F2WAIT PRINTS A SINGLE RECORD.
  392. 5465 PRINT:PRINT"   PRESS F4[146] AFTER ALL NEW NAMES ARE
  393. 5470 [153]"   ENTERED AND BEFORE PRINTING A LIST
  394. 5475 PRINT"   TO ALPHABETIZE NAMES AND ADD THEM
  395. 5480 [153]"   PERMANENTLY TO THE FILES ALONG WITH
  396. 5485 PRINT"   NEW NOTE PAGE ENTRIES. THE[170]_[146][180]KEY
  397. 5490 [153]"   ALSO DOES THIS AND EXITS PROGRAM.
  398. 5495 PRINT:PRINT"   MENU WILL APPEAR HERE:[182]H[146][181]TO REVIEW
  399. 6000 [142]
  400. 9000 [153]"LOAD"VTAB$(8)" WRONG DISK! THIS SHORTENED VERSION OF
  401. 9010 PRINT:PRINT" ADDRESS BOOK BY FRANK VAN DEVENTER
  402. 9020 [153]:[153]" REQUIRES PREVIOUSLY ESTABLISHED
  403. 9030 PRINT:PRINT" DISK FILES TO WORK.":END
  404. 10000 IFPEEK(46)<70GOTO9000
  405. 10005 PRINT"   NEW DISK FILE - 5 MIN SETUP TIME
  406. 10010 Z[178][181](MF[173]256):Y[178]MF[171](Z[172]256)
  407. 10015 [151]788,52:[159]8,8,8,"0:CLOSEFILES,L,"[170][199](LG):[141]200
  408. 10020 [152]15,"P"[199](8)[199](Y)[199](Z)[199](1):[141]200
  409. 10030 [139]A[178]50[167][152]8,LG:[137]10020
  410. 10040 [160]8:[141]49000
  411. 10050 [151]56576,197:[151]648,188:[151]53272,245
  412. 10060 [153]"LOAD"VTAB$(24)[163]3)"NOTES - PRESS RETURNWAIT KEY TO RETURN";
  413. 10070 [158]49155:[151]56576,199:[151]648,4:[151]53272,21
  414. 10080 NU[178]1:IN$(1)[178]"^001":[141]3550:[160]8:[141]5430:[137]20
  415. 49000 Y[178]49152:[139][194](49686)[178]96[167][142]
  416. 49010 [135]X:[139]X[179].[167][142]
  417. 49020 [151]Y,X:Y[178]Y[170]1:[137]49010
  418. 50000 [131]76,68,192,169,5,162,8,160,1,32,186,255,169,19,162,49,160,192,32,189
  419. 50010 [131]255,169,0,133,251,169,188,133,252,165,1,72,41,254,133,1,169,251,162
  420. 50020 [131]27,160,194,32,216,255,104,133,1,96,64,48,58,160,40,77,76,41,47,78,79
  421. 50030 [131]84,69,83,47,83,79,82,84,162,0,189,0,216,157,0,168,189,0,217,157,0,169
  422. 50040 [131]189,0,218,157,0,170,189,0,219,157,0,171,232,208,229,169,197,141,0,221
  423. 50050 [131]169,188,141,136,2,133,210,169,245,141,24,208,173,134,2,162,0,157,0
  424. 50060 [131]216,157,0,217,157,0,218,157,0,219,232,208,241,165,1,72,41,254,133,1
  425. 50070 [131]32,207,255,162,0,134,212,134,216,189,0,168,157,0,216,189,0,169,157
  426. 50080 [131]0,217,189,0,170,157,0,218,189,0,171,157,0,219,232,208,229,104,133,1
  427. 50090 [131]169,21,141,24,208,169,4,141,136,2,133,210,169,199,141,0,221,96,32,253
  428. 50100 [131]174,32,158,173,32,247,183,165,20,133,253,165,21,133,254,32,253,174
  429. 50110 [131]32,158,173,162,1,165,71,157,27,194,157,67,194,165,72,157,47,194,157
  430. 50120 [131]87,194,165,253,208,2,198,254,198,253,160,3,24,189,67,194,101,253,157
  431. 50130 [131]67,194,189,87,194,101,254,157,87,194,136,208,236,189,27,194,133,80
  432. 50140 [131]189,47,194,133,81,189,67,194,133,82,189,87,194,133,83,32,219,193,144
  433. 50150 [131]4,202,208,228,96,165,82,133,78,165,83,133,79,160,2,177,78,153,250,0
  434. 50160 [131]136,16,248,48,11,24,165,80,105,3,133,80,144,2,230,81,160,2,177,80,153
  435. 50170 [131]247,0,136,16,248,32,230,193,144,230,56,165,82,233,3,133,82,176,2,198
  436. 50180 [131]83,32,219,193,176,31,160,2,177,82,153,247,0,136,16,248,32,230,193,176
  437. 50190 [131]225,160,2,177,80,145,82,185,247,0,145,80,136,16,244,48,183,160,2,177
  438. 50200 [131]80,145,78,185,250,0,145,80,136,16,244,24,189,27,194,125,67,194,133
  439. 50210 [131]82,189,47,194,125,87,194,133,83,102,83,102,82,32,219,193,176,22,189
  440. 50220 [131]27,194,157,28,194,189,47,194,157,48,194,32,251,193,232,32,11,194,76
  441. 50230 [131]13,193,189,67,194,157,68,194,189,87,194,157,88,194,32,11,194,232,32
  442. 50240 [131]251,193,76,13,193,165,81,197,83,208,4,165,80,197,82,96,160,255,200
  443. 50250 [131]196,247,176,11,196,250,176,6,177,248,209,251,240,241,96,196,250,96
  444. 50260 [131]24,165,80,105,3,157,27,194,165,81,105,0,157,47,194,96,56,165,80,233
  445. 50270 [131]3,157,67,194,165,81,233,0,157,87,194,96,-1
  446. 50500 X[178][194](43)[170][194](44)[172]256:C[178]10001
  447. 50510 A[178][194](X):B[178][194](X[170]1):X[178]A[170]256[172]B:[139][194](X[170]2)[170]256[172][194](X[170]3)[179]C[137]50510
  448. 50520 A[178]A[170]2:[139]A[177]255[167]A[178]A[171]256:B[178]B[170]1
  449. 50530 [151]X,0:[151]X[170]1,0:[153]"LOADP(null)45,"A":P(null)46,"B":C(null):?CLEFT$(147)":[151]631,13:[151]198,1:[128]
  450. 50599 LOCATI[145] [129] [143] STATEMENTS BELOW IS THE NUMBER AFTER HASH MARK  EG: /9
  451. 50600 [173]9 [143] INTRO SCREENS/INNITIALIZE/LOAD NOTES $ INDEX/POKE DISABLES STOP KEY
  452. 50605 [173]49 [143] CHECK FREE MEMORY
  453. 50610 [173]99 [143] PRINT FILE TO SCREEN
  454. 50620 [173]199 [143] CHECK ERROR CHANNEL
  455. 50630 [173]249 [143] PRINT COMMAND MENU
  456. 50640 [173]349 [143] ADD/CHANGE ENTRY TO INDEX$ AND DISK
  457. 50650 [173]399 [143] STORE TO RELATIVE FILE
  458. 50660 [173]449 [143] GET RECORD FROM DISK
  459. 50670 [173]499 [143] INPUT RECORD FIELDS
  460. 50680 [173]699 [143] CORRECT, PRINT OR STORE
  461. 50690 [173]799 [143] SEPARATE CITY, STATE, ZIP
  462. 50700 [173]844 [143] REMOVE TERMINAL SPACES
  463. 50710 [173]864 [143] SEPARATE TERMINAL ZIP CODE
  464. 50720 [173]949 [143] BRING NAME TO LAST, FIRST ORDER
  465. 50730 [173]999 [143] FIND OLD RECORD / 1ST GET REQUEST
  466. 50740 [173]1149 [143] NAME SEARCH LOOP
  467. 50750 [173]1999 [143] PRINT NAME & ADDRESS
  468. 50760 [173]2099 [143] MULTI LABEL FORMAT & PRINTOUT / DS IS DOUBLE LABLE SPACING
  469. 50770 [173]2199 [143] PRINT ENTIRE RECORD
  470. 50775 [173]2249 [143] GET LEFT MARGIN SIZE
  471. 50780 [173]2299 [143] MAIL LIST PRINT OPTIONS SCREEN
  472. 50790 [173]2399 [143] INPUT PRINT COMMANDS
  473. 50800 [173]2499 [143] PRINT LIST / 1ST DECODE INDEX STRING
  474. 50810 [173]2999 [143] CREATE NEW RECORD
  475. 50815 [173]3199 [143] GARBAGE COLLECTION
  476. 50820 [173]3499 [143] SORT & STORE INDEX FILE
  477. 50830 [173]3899 [143] CLOSING ROUTINES
  478. 50840 [173]3999 [143] INPUT TO MAIN MENU
  479. 50845 [173]4949 [143] SET GEMINI PRINT MODE
  480. 50850 [173]4999 [143] INNITIALIZATION ROUTINES / INDEX$()=FILE INDEX
  481. 50860 [173]5199 [143] OPEN INDEX & CHECK IF NEW FILE / NU=CURRENT NUMBER OF FILES
  482. 50870 [173]5249 [143] READ INDEX FILE
  483. 50875 [173]5345 [143] FIXED VARIABLES DEFINED: 5350-5390 / DS=DOUBLE LABEL SPACING
  484. 50880 [173]5346 ML[178]MAX LABEL [195]GTH [173] 80 USED AS MAXIMUM [153]ER LINE [195]GTH IN MM
  485. 50885 [173]5347 MF[178]MAX # OF FILES [173]LG[178]MAX FILE SIZE (CHANGE THESE [145]LY [129] [162] DISK)
  486. 50890 [173]5348 INDEX FILE [145] DISK NEEDS 1 BLOCK [170] 1 BLOCK [184]E [129] EACH 10 NAMES
  487. 50895 [173]5349 STRING FUNCTI[145]: VT$() CREATES VERTICAL TAB, CL$ CLEARS [145]E LINE
  488. 50900 [173]5399 [143] PRINT SECOND SCREEN
  489. 50905 [173]10005 [143] ESTABLISH RELATIVE FILE
  490. 50910 [173]10049 [143] ESTABLISH NOTES SCREEN & SAVE WITH MACHINE LANGUAGE PROGRAMS
  491. 50920 [173]10079 [143] ESTABLISH INDEX FILE
  492. 50930 [173]48999 [143] LOADER - MACH LANG PGMS
  493. 50940 [173]50499 [143] PROGRAM SHORTENING ROUTINE
  494. 51000 A "?" MARK CAN BE SUBSTITUTED [129] FIRST NAME & WILL [168] [153] [145] THE LABEL
  495. 51005 LAST NAME PRECEEDED BY [174] WILL [168] S[164]RE BUT WILL [153] ADDRESS [145]LY LABEL.
  496. 51010 USE '[138] 10' [164] SET [153] MODE [145] A GEMINI [153]ER.
  497. 51015 [139] USED WITH MOSTLY AMERICAN ZIP  CODES, CHANGE [179]5 [164] [179][177]5 IN LINE 620
  498. 51020 MAXIMUM FILE [195]GTH [175] MAXIMUM   NUMBER OF FILES ARE SET IN LINE 5390.
  499. 51025 [145]E DISK HOLDS 700 FILES. [172] [153] ROUTINES ARE ALL BETWEEN 2000 & 2245.
  500. 51045 .
  501. 51050 [172][172][172] ADDRESS BOOK [172][172][172]
  502. 51055 .
  503. 51060 BY FRANK VAN DEVENTER
  504. 51065 .
  505. 51070 [164] USE PROGRAM, [148] IT FIRST [164] A BLANK [129]MATTED DISK. [167] [138] PROGRAM
  506. 51080 WITH THAT DISK IN THE DISK DRIVE. THE FIRST [138] ESTABLISHES THE FILE [145]
  507. 51090 THE DISK [175] TAKES MUCH L[145]GER    (4.5 MINUTES) THAN SUBSEQUENT [138]S. THE
  508. 51100 PROGRAM MAY BE SH[176]TENED [164] [147]  M[176]E QUICKLY [145]CE A FILE IS ESTABLISHED.
  509. 51110 JUST ENTER: '[138] 50500' & PROGRAM SH[176]TENS ITSELF [164] LINE 10000.(2[173]7 0FF)
  510. 51120 [148] [175] USE THIS SH[176]TER PROGRAM IN PLACE OF THE L[145]GER VERSI[145]. IT USES
  511. 51130 LESS MEM[176]Y NEEDED [129] STRING     S[164]RAGE [175] IT W[145]'T TRY [164] CREATE A
  512. 51140 RELATIVE FILE [145] EVERY [162] DISK IT SEES.   [VERS 5[173]28[173]85C]
  513.